//using UnityEngine;

//public class GpuBvhTutorial : MonoBehaviour
//{
//    public RunningType runningType;
//    public Mesh targetMesh;

//    private CpuRunner cpuRunner;

//    private GpuRunner gpuRunner;
//    public ComputeShader meshLoaderCs;
//    public ComputeShader mortonCoderCs;
//    public ComputeShader bitonicSortCs;
//    public ComputeShader radixTreeBuilderCs;
//    public ComputeShader aabbBuilderCs;

//    void Start()
//    {
//        if (runningType == RunningType.Cpu)
//        {
//            cpuRunner = new CpuRunner();
//            cpuRunner.Run(targetMesh);
//        }
//        else
//        {
//            gpuRunner = new GpuRunner();
//            gpuRunner.bitonicSortCs = bitonicSortCs;
//            gpuRunner.radixTreeBuilderCs = radixTreeBuilderCs;
//            gpuRunner.meshLoaderCs = meshLoaderCs;
//            gpuRunner.aabbBuilderCs = aabbBuilderCs;
//            gpuRunner.mortonCoderCs = mortonCoderCs;
//            gpuRunner.Run(targetMesh);
//        }
//    }

//    public enum RunningType
//    {
//        Cpu,
//        Gpu
//    }

    

//    private void OnDrawGizmos()
//    {
//        cpuRunner?.DrawGizmos();
//        gpuRunner?.DrawGizmos();
//    }

//    private void OnDestroy()
//    {
//        gpuRunner?.Dispose();
//    }
//}